package me.seu.demo.test.string;

/**
 * String Test 1
 *
 * @author liangfeihu
 * @number 53669
 * @since 2021/5/9 上午10:52
 */
public class StringTest1 {

    public static void main(String[] args) {
        String str1 = "abc";
        String str2 = new String("abc");
        String str3 = str2.intern();
        System.out.println(str1 == str2);
        System.out.println(str2 == str3);
        System.out.println(str1 == str3);

        // 在每次赋值的时候使用 String 的 intern 方法，
        // 如果常量池中有相同值，就会重复使用该对象，返回对象引用

        String a = new String("abc").intern();
        String b = new String("abc").intern();
        if (a == b) {
            System.out.println("a==b");
        }

        String s1 = new String("1") + new String("1");
        s1.intern();
        String s2 = "11";

        // false
        System.out.println(s1 == s2);

        String s11 = new String("11") ;//+ new String("1");
        s11 = s11.intern();
        String s22 = "11";

        // true
        System.out.println(s11 == s22);
    }

}
